package com.baor;

import com.baor.handler.AuthenticationHandler;
import feign.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@SpringBootApplication
@EnableFeignClients
public class SystemAdminApplication implements  WebMvcConfigurer {
//
//    @Autowired
//    private AuthenticationHandler authenticationHandler;

    public static void main(String[] args) {
        SpringApplication.run(SystemAdminApplication.class, args);
    }

    @Bean
    @LoadBalanced
    public RestTemplate restTemplate() {

//        RestTemplate restTemplate = new RestTemplate();
//        // 添加 MappingJackson2HttpMessageConverter
//        List<HttpMessageConverter<?>> messageConverters = new ArrayList<>();
//        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
//
//        // 支持的内容类型
//        List<MediaType> supportedMediaTypes = new ArrayList<>();
//        supportedMediaTypes.add(MediaType.APPLICATION_JSON);
//        supportedMediaTypes.add(MediaType.TEXT_PLAIN);
//        converter.setSupportedMediaTypes(supportedMediaTypes);
//
//        messageConverters.add(converter);
//        restTemplate.setMessageConverters(messageConverters);
        return new RestTemplate();
    }

    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }

    /**
     * 拦截器
     */
//    @Override
//    public void addInterceptors(InterceptorRegistry registry) {
//        registry.addInterceptor(authenticationHandler)
//                .addPathPatterns("/**")
//                .excludePathPatterns("/sys_user/login");
//    }

}
